package com.fingard.dsp.bank.helpers;

import com.fingard.constant.Format;
import com.fingard.dsp.bank.reqrespobj.single.ReqSingle;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;

/**
 * SeqSingle表，单笔信息，用于单笔代收付，
 * 需记录发银行的流水号， 或者记录银行响应的流水号，
 * 以及文件名，文件上传状态等，
 * 按月份+渠道分表，一个渠道一个表，因为需按顺序取流水序号
 * <p>
 * 使用说明：单笔代收付，记录每笔状态，即一笔一条记录
 *
 * @throws SQLException
 */
public class SeqSingleInfo {

    public void loadFromReqBat(ReqSingle p_req1908) throws ParseException {
        this.bankCode = p_req1908.reqHeader.bankCode;
        this.bankFrontCode = p_req1908.reqHeader.bankFrontCode;
        this.paySentTime = Format.DateTimeFormat.parse(p_req1908.reqHeader.payDateTime);
        this.payDate = Integer.parseInt(Format.Date8Format.format(paySentTime));
        this.transType = p_req1908.reqHeader.transType;
    }

    /**
     * 业务流水号
     */
    public String askNumber;

    /**
     * 线路代码，如EPAY01
     */
    public String bankCode;

    /**
     * 交易类型，如1908、9108
     */
    public String transType;

    /**
     * 支付日期yyyyMMdd
     */
    public int payDate;

    /**
     * 前置机代码（标识）
     */
    public String bankFrontCode;

    /**
     * 支付发送时间PayDate+PayTime
     */
    public Date paySentTime;

    /**
     * 业务号
     */
    public String businessDocumentCode;

    /**
     * 账户户名
     */
    public String cardHolder;

    /**
     * 公司账户
     */
    public String cardBookCode;

    /**
     * 公司账户
     */
    public String companyAccount;

    /**
     * 交易金额
     */
    public BigDecimal money;

    /**
     * 通道类型
     */
    public String thirdPartType;

    /**
     * 子渠道
     */
    public String subChannelCode;

    /**
     * 支付状态码
     */
    public String payState;

    /**
     * 支付信息码
     */
    public String payInfoCode;

    /**
     * 支付信息
     */
    public String payInfo;

    /**
     * 创建日期
     */
    public Date createdOn;

    /**
     * 最近一次修改日期
     */
    public Date lastModifiedOn;

    /**
     * 版本号
     */
    public int rowVersion;
}
